#ifndef __queue_H__
#define __queue_H__

#define datatypeQ int

typedef struct QueueNode
{
	datatypeQ data;
	struct QueueNode *next;
}QueueNode;

typedef struct Queue
{
	QueueNode* front;     //队头指针
	QueueNode* tail;      //队尾指针
}Queue;

void InitQueue(Queue *queue);

int EnQueue(Queue *queue,datatypeQ i);

void ShowQueue(Queue *queue);

int DeQueue(Queue *queue);

int GetHead(Queue *queue,datatypeQ *v);

int Length(Queue *queue);

void CleanQueue(Queue *queue);

void DestoryQueue(Queue *queue);

int EmptyQueue(Queue *queue);

#endif
